之前介紹了開發者體驗(DX)的重要性, 這次來分享筆者長年學習及使用程式語言的獨特技巧.
很多人可能跟筆者一樣都有類似的問題存在, 就是很容易忘記相關的寫法技巧, 需要Google或找人詢問. 但曾經這些手法都是自己非常熟悉的. 那該如何解決這個痛點呢?
筆者長期都只會記憶簡單的使用方式, 例如:
import/ if .. else/ try.. except/ def ...
怎麼使用或者是關鍵字(含模組名稱) 例如: lambda, re.
其他部分就是透過以前寫給自己的筆記來查表了
正確做筆記是非常重要的, 做筆記的基本原則就是
5W1H: 人、事、時、地(語言)、物、如何做
為什麼要這麼做?
除非是很重要的事情, 具有強烈的意圖性跟關聯性, 不然就是很容易忘光光. 因此對筆者而言, 刷leetcode 就變成相對是沒有意義的事情了, 在刻意刷題的情況下, 的確會讓自己的瞬時記憶中存有這些紀錄, 但長時記憶中並不一定會存在這些紀錄存在. 未來還是會忘光光. 因筆者不敢保證當下瘋狂刷題或學習的這些技巧在大腦內的的有效期限到底多久? 因此還是養成寫筆記的習慣才是比較可靠的作法
成功的職場人士也常常有「回顧記事本」的習慣,透過記事本的記錄,刺激思考,尋找盲點,甚至想出新的創意。
引用自 人的記憶只有一天而已
在新手問題列表中, 很容易發現有這類的問題存在, 以下是問題及回應者的片段, 可以簡單看出熟的關鍵字.
引用自Python 新手問題
接下來分享筆者是怎麼做筆記的
這張圖是筆者長年使用notepad++, 紀錄的形式. 裏頭有時間跟做法.
就可以很清楚看到該怎麼做
例如: 查詢C# exception 發生時需要有 完整的callstack 及行號該怎麼做, 直接查關鍵字: exception
針對查到的項目去找到自己需要的部分就好了. 很輕易就查到有多筆紀錄
可以看到筆者都有特別寫出時間戳記, 針對不同的時間戳記有兩個意涵
查詢Git commit 列表上可以看出當時正在做的專案是什麼?
同時也可以直接查到是怎麼被應用在專案中
那如果要查C# 跟python 中兩者的exception寫法差異就很簡單了
直接把查到的資訊做一個比對就行了
結論:
筆者選擇使用筆記本的主要原因是, 筆者希望這個文件可以隨時隨地在任何地方被開啟跟讀取, 不會有第三方工具的限制. 因為筆者在開始這個習慣的時候智慧型手機並不存在, 主要都是使用筆電在工作.
撰寫完整紙本筆記是從2006年10月開始, 轉由完整電子筆記的習慣是從2008年10月開始至今都不曾間斷過. 以往的痛點, 在完整筆記的紀錄中, 已經變成筆者在未來工作時的爽點.
在開發者體驗中有一個非常重要的原則跟觀念就是要 To work smarter, not harder